TypeScript Mapped Types
オブジェクトから、各要素の型を取り出した..状態?
in演算子を前置きしてオブジェクトに適用する
javascriptの for...of に似てる
Mapped typeは「オブジェクト型の各要素を別の型に変換する」という特性から、ちょうど配列のmapメソッドに近いものです。
function F<A extends string[]>(strArray: A):{[K in keyof A]: number;}{ return strArray.map(str=>parseInt(str) as any}
const n = F(["2","3","8"])
[2,3,8]
参考:
最初にここを読む
ジェネリクスでも mapped types を活用できる。
type Freeze<T> = { readonly [P in keyof T]: T[P] と、Tの持つ型を一括で readonlyに指定。
keyofの話. keyof T で、Tのプロパティ名の直和型(union)とできる。 mapped typeは、unionを プロパティ名に分配できる?と表現できる?
ある型に追従した型を作りたい場合に... [P in HogeType]: ATypeという形で一括で型指定できる